package tw.spring.demo.model;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * @author: 陈艺博
 * @date: 2021-02-03 21:26
 * @description: 请求响应体
 **/
@Data
@ApiModel(value = "通用响应数据结构类")
public class AjaxResponse {

    /**
     * 是否响应成功
     */
    @ApiModelProperty(value = "请求是否处理成功")
    private Boolean isOk;

    /**
     * 请求响应状态码 200成功、400客户端错误、500服务端错误
     */
    @ApiModelProperty(value = "请求响应状态码", example = "200、400、500")
    private Integer code;

    /**
     * 请求结果描述信息
     */
    @ApiModelProperty(value = "请求结果描述信息")
    private String message;

    /**
     * 查询结果
     */
    @ApiModelProperty(value = "请求结果数据")
    private Object data;

    /**
     * 请求成功的响应，不带查询数据（用于删除、修改、新增接口）
     */
    public static AjaxResponse success(){
        AjaxResponse ajaxResponse = new AjaxResponse();
        ajaxResponse.setIsOk(true);
        ajaxResponse.setCode(200);
        ajaxResponse.setMessage("请求响应成功!");
        return ajaxResponse;
    }

    /**
     * 请求成功的响应，带有查询数据（用于数据查询接口）
     * @param obj 查询结果
     */
    public static AjaxResponse success(Object obj){
        AjaxResponse ajaxResponse = new AjaxResponse();
        ajaxResponse.setIsOk(true);
        ajaxResponse.setCode(200);
        ajaxResponse.setMessage("请求响应成功!");
        ajaxResponse.setData(obj);
        return ajaxResponse;
    }

    /**
     * 请求成功的响应，带有查询数据（用于数据查询接口）
     * @param obj 查询结果
     * @param message 请求结果描述信息
     */
    public static AjaxResponse success(Object obj,String message){
        AjaxResponse ajaxResponse = new AjaxResponse();
        ajaxResponse.setIsOk(true);
        ajaxResponse.setCode(200);
        ajaxResponse.setMessage(message);
        ajaxResponse.setData(obj);
        return ajaxResponse;
    }
}
